home *** CD-ROM | disk | FTP | other *** search
/ Biodiversity of Illinois 2: Woodland Habitats / Biodiversity of Illinois 2 - Woodland Habitats.iso / mac / casts / PDFxtraBehaviors.cst / 00011_Script_PDF_GetPageNumber < prev    next >
Text File  |  2006-07-11  |  6KB  |  179 lines

  1. -- Get Page Number
  2.  
  3. Property pEvent, pSprite, pDestMember, pAlertFlag
  4.  
  5. on doGetPageNbr me
  6.   -- put the current page number into the member specified
  7.   myMember = me.ExtractMemberFromString(pDestMember)[2]
  8.   myMember.text = string(PDF_GetPageNumber(sprite pSprite))
  9.   if PDF_status(sprite pSprite) then alert "PDF Behavior Error"&RETURN&PDF_error(sprite pSprite)
  10.   
  11. end doGetPageNbr
  12.  
  13. on mouseUp me
  14.   if (pEvent = #mouseUp) then doGetPageNbr(me)
  15. end mouseUp
  16.  
  17. on mouseDown me
  18.   if (pEvent = #mouseDown) then doGetPageNbr(me)
  19. end mouseDown
  20.  
  21. -- standard behavior stuff --
  22. on getPropertyDescriptionList me
  23.   set defaultValues = GetDefaultValues (me)
  24.   
  25.   set pdfSpriteList = getProp (defaultValues, #spriteList)
  26.   set defSprite     = getProp (defaultValues, #defaultSprite)
  27.   if (defSprite=0) then 
  28.     if the ticks - pAlertFlag > 10 then
  29.       alert "Please create a sprite of type PDF first."
  30.     end if
  31.     set pAlertFlag = the ticks -- The ticks when the user clicked "OK"
  32.     
  33.     exit
  34.   end if
  35.   
  36.   -- retrieve all members of type text, field or Flashcomponent
  37.   lTextFields = me.GetMembers([#text, #field, #flashcomponent])
  38.   if (lTextFields = []) then
  39.     if the currentSpriteNum then
  40.       alert "You need at least one member of type #field or #text to use this behavior."
  41.     end if
  42.     exit
  43.   end if 
  44.   
  45.   set p_list = [:]
  46.   addprop p_list,#pEvent, [ #comment: "Event", #format:#symbol, #range:[#mouseUp, #mouseDown], #default:#mouseUp]
  47.   addprop p_list,#pSprite,[ #comment: "PDF Sprite is in channel:", #format:#symbol, #range:pdfSpriteList, #default:defSprite]
  48.   if (lTextFields.count = 0) then
  49.     addprop p_list, #pDestMember, [ #comment: "Put result in:", #format: #string, #default:"<no named fields or text members available>"]
  50.   else  
  51.     addprop p_list, #pDestMember, [ #comment: "Put result in:", #format:#member, #default:lTextFields[1], #range:lTextFields]
  52.   end if    
  53.   
  54.   return p_list
  55. end
  56.  
  57. on getBehaviorDescription
  58.   tmp = "Retrieve the current page number of PDF document to the designated Director field" &RETURN& "Available for Windows only, Acrobat or Reader."
  59.   tmp = tmp &RETURN&RETURN& "--- PARAMETERS ---" &RETURN& " - Event: mouseUp or mouseDown."
  60.   tmp = tmp &RETURN& " - PDF Sprite is in channel: which channel contains the PDF Sprite."
  61.   tmp = tmp &RETURN& " - Put result in: the name of a text or field cast member to store the number in."
  62.   tmp = tmp &RETURN&RETURN& "Free to use and abuse. (c)1999 - 2005, Integration New Media, Inc."  &RETURN& "Thanks to James Newton for his suggestions"
  63.   return tmp
  64.  
  65. on getBehaviorTooltip
  66.   return "Retrieve the current page number of PDF document"&RETURN&  "to the designated Director field." &RETURN& "Available for Windows only, Acrobat or Reader."
  67. end
  68.  
  69. -- utils --
  70. on GetDefaultValues me
  71.   if the currentSpriteNum then
  72.     set spriteList = GetSpriteList (me #PDF)
  73.     if count (spriteList) then
  74.       set defaultSprite = getAt (spriteList, 1)
  75.     else
  76.       set defaultSprite = 0
  77.     end if
  78.     
  79.     return [#spriteList: spriteList, #defaultSprite: defaultSprite]
  80.     
  81.   else -- the currentSpriteNum = 0
  82.     -- Director is merely recompiling this script: return dummy values
  83.     return [#spriteList: [1], #defaultSprite: 1]
  84.   end if
  85. end 
  86.  
  87.  
  88. on GetSpriteList me, memberType
  89.   -- return list of sprites of type memberType in current frame
  90.   global version
  91.   if (char 1 of version = 6) then
  92.     set maxSprite = 120
  93.   else
  94.     set maxSprite = the lastChannel
  95.   end if
  96.   
  97.   set aList=[]
  98.   
  99.   repeat with i = 1 to maxSprite
  100.     set spriteMember = the member of sprite i
  101.     -- if (string(m) contains "member 0") then next repeat -- unnecessary
  102.     if (the type of spriteMember = memberType) then -- (JN) Line break
  103.       append (aList, i)
  104.     end if
  105.   end repeat
  106.   
  107.   return aList
  108. end GetSpriteList
  109.  
  110. on GetMembers me, theMembersTypeNeeded  
  111.   
  112.   lResult = []
  113.   
  114.   lCastLib = the number of castLibs
  115.   
  116.   repeat while lCastLib -- repeat through all linked castlibs
  117.     
  118.     lMemberNum = the number of members of castLib(lCastLib)
  119.     
  120.     repeat while lMemberNum -- repeat through all members of the current castlib
  121.       lMemberType = member(lMemberNum, lCastLib).type
  122.       
  123.       if (theMembersTypeNeeded.getOne(lMemberType) > 0) then -- check if the member's type is contained in theMembersTypeNeeded
  124.         lName = member(lMemberNum, lCastLib).name 
  125.         if (lName <> "") then 
  126.           
  127.           lResult.AddAt(1, lName&&"(member"&&lMemberNum&&"of castlib"&&lCastLib&")") -- Add the member to the list
  128.         end if
  129.       end if
  130.       
  131.       set lMemberNum = lMemberNum - 1 -- check the next member
  132.     end repeat
  133.     
  134.     set lCastLib = lCastLib - 1 -- check the next castlib
  135.   end repeat
  136.   
  137.   return lResult
  138. end GetMembers
  139.  
  140. --
  141. -- Extract name and reference to a member contained in a string
  142. --    in a list [<name>, <(member xxx of castlib yyy)>]
  143. -- the String contains a reference to a member formatted like
  144. --    "<member name> (member xxx of castlib yyy)"
  145. --
  146. on ExtractMemberFromString me, theString
  147.   lResult = ["", VOID]
  148.   
  149.   if (StringP(theString)) then -- check if theString contains a string
  150.     lPos = offset("(member ", theString) -- find the offset of the substring "(member "
  151.     if (lPos > 0) then -- substring found = theString is a valid member reference
  152.       lName= ""
  153.       
  154.       if (lPos > 2) then
  155.         lName = theString.char[1..lPos-2]
  156.         if (lName) = "<no name>" then
  157.           lName = ""
  158.         end if
  159.       end if
  160.       
  161.       lMember = value(theString.char[lPos..theString.chars.count])
  162.       -- check if the member name and member reference are consistent
  163.       if (lMember <> VOID) then
  164.         if (lMember.name <> lName) then -- the user probably moved the cast member, we'll try to find it
  165.           if (lName <> "") then -- the member didn't have a name, so it's useless to look for it
  166.             lMember = member(lName)
  167.           else
  168.             lMember = VOID
  169.           end if
  170.         end if
  171.       end if
  172.       
  173.       lResult = [lName, lMember]
  174.     end if
  175.   end if
  176.   
  177.   return lResult
  178. end ExtractMemberFromString
  179.